﻿using System;
using System.Collections.Generic;
using System.Linq;
using LINQPad.Extensibility.DataContext;
using LINQPad.OpenAccess.Metadata;
using Telerik.OpenAccess.Metadata;

namespace LINQPad.OpenAccess.Services
{
    /// <summary>
    /// Used to retrieve the LINQPad data context schema for an open access context type.
    /// </summary>
    public interface IDataContextSchemaProvider
    {
        /// <summary>
        /// Gets the schema for the specified openaccess context.
        /// </summary>
        /// <param name="contextType">Type of the context.</param>
        /// <param name="contextMetadata">The metadata of the context.</param>
        /// <returns>
        /// The schema.
        /// </returns>
        List<ExplorerItem> GetSchema( Type contextType, MetadataContainer contextMetadata );
    }
}
